﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CruzDelSur.Dominio;
using CruzDelSur.Dominio.Seguridad;
using CruzDelSur.Persistencia;
using System.Web.Mvc;

namespace CruzDelSur.Models
{
    public enum ServicioEstadoEnum { NUEVO, EDITAR, ELIMINAR };
    public class ServiciosModel
    {
        private Servicio _Servicio;
        public ServiciosModel()
        {
            _Servicio = new Servicio();
            Servicio.FechaBaja = DateTime.Now;
            Servicio.Caracteristicas = new List<Parametro>();
            Parametros = new List<Parametro>();
        }
        public Servicio Servicio {
            get { return _Servicio;}
            set {_Servicio = value;}
        }
        public bool ServicioEspecial { get; set; }
        public bool esModeloValido { get; set; }
        public ICollection<Parametro> Parametros;
        public string Parametro { get; set; }
        public List<IFilaTramoModel> FilasTramos { get; set; }
        public string Caracteristica { get; set; }
        public static string Estados(string value)
        {
                switch (value)
                {
                    case "A": return "Activo";
                    case "P": return "Pendiente";
                    case "B":
                    case "I": return "Baja";
                    default: return "Pendiente";
                }
        }
        public ServicioEstadoEnum EstadoEdicion;
    }

    public interface IFilaTramoModel
    {
        Tramo Tramo { get; set; }
        SelectList ComboTramo { get; set; }
        bool esModeloValido { get; set; }
        bool esServicioTramo { get; set; }
    }

    public abstract class FilaTramoModel : IFilaTramoModel
    {
        public Tramo Tramo { get; set; }
        public SelectList ComboTramo { get; set; }
        public bool esModeloValido { get; set; }
        public bool esServicioTramo { get; set; }
    }

    public class AdicionarFilaTramoModel : FilaTramoModel
    {
        
    }
    public class EditarFilaTramoModel : FilaTramoModel
    {
        public bool DarBaja { get; set; }
    }
}